
#include <openssl/md5.h>
#include <stdio.h>
#include <string.h>

int main(int argc, char **argv)
{
    if (argc < 2)
    {
        printf("%s <需要计算md5值的字符串，可以有多个字符串>\n", argv[0]);
        return -1;
    }

    MD5_CTX ctx;
    for (int k = 1; k < argc; k++)
    {
        MD5_Init(&ctx);
        MD5_Update(&ctx, argv[k], strlen(argv[k]));
        unsigned char szT[32];
        MD5_Final(szT, &ctx);

        printf("%d\t%s\n", strlen(argv[k]), argv[k]);
        for (size_t i = 0; i < 16; i++)
        {
            printf("%02x", szT[i]);
        }
        printf("\n");
    }

    return 0;
}